package com.zhilei.service;

import com.zhilei.pojo.JobType;
import com.zhilei.pojo.vo.JobTypeSecondAndThirdVO;

import java.util.List;

/**
 * <p>
 * 职务类别表 服务类
 * </p>
 *
 * @author 志磊
 * @since 2025-02-05
 */
public interface JobTypeService {
    /**
     * 获得所有顶级(一级)分类列表
     *
     * @return
     */
    List<JobType> getTopJobTypeList();

    /**
     * 根据顶级分类获得第三级分类列表
     *
     * @param topJobTypeId
     * @return
     */
    List<JobType> getThirdListByTop(String topJobTypeId);

    /**
     * 根据顶级分类获得二级分类包含三级分类列表的集合
     *
     * @param topJobTypeId
     * @return
     */
    List<JobTypeSecondAndThirdVO> getSecondAndThirdListByTop(String topJobTypeId);

    /**
     * 根据分类id获得子分类列表
     *
     * @param jobTypeId
     * @return
     */
    List<JobType> getChildrenJobTypeList(String jobTypeId);

    /**
     * 获得节点下子节点的数量
     *
     * @param jobTypeId
     * @return
     */
    Long getChildrenJobTypeCounts(String jobTypeId);

    /**
     * 根据名称获得职位类型
     *
     * @param name
     * @return
     */
    boolean getJobTypeIsExistByName(String name);

    /**
     * 根据id查询职位类型
     *
     * @param id
     * @return
     */
    JobType getJobTypeById(String id);

    /**
     * 创建职位类型分类
     *
     * @param jobType
     * @return
     */
    void createJobType(JobType jobType);

    /**
     * 修改职位类型
     *
     * @param jobType
     */
    void updateJobType(JobType jobType);

    /**
     * 删除职位类型
     *
     * @param id
     */
    void deleteJobType(String id);
}
